/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.service;


import com.comac.ins.common.BaseResult;
import com.comac.ins.common.PagerEntity;
import com.comac.ins.config.FeignConfiguration;
import com.comac.ins.vo.req.FeignBasePageReqVO;
import com.comac.ins.vo.req.SelectEmployeeListQeqVO;
import com.comac.ins.vo.req.SelectUserLabelReqVO;
import com.comac.ins.vo.res.OrgLabelInfoResVO;
import com.comac.ins.vo.res.OrgLabelUserInfoResVO;
import com.comac.ins.vo.res.UserInfoResVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;


/**
 * 岗位标签外部接口
 *
 * @author Songtinghua
 * @create 2021-11-03 11:39
 **/
@Api(value = "岗位标签查询接口", tags = "岗位标签查询接口")
@FeignClient(url = "${feign.userCenterUrl:}", value = "usercenter-service", contextId = "usercenter-orglabel", configuration = FeignConfiguration.class)
public interface OrgLabelService {

    /**
     * 外部系统查询岗位标签
     *
     * @param param split page parrm
     * @return list
     */
    @ApiOperation(value = "岗位标签列表查询")
    @RequestMapping(value = "feignApi/userCenter/orgLabel/selectList", method = RequestMethod.POST)
    PagerEntity<OrgLabelInfoResVO> selectList(@RequestBody FeignBasePageReqVO param);


    /**
     * 外部系统查询岗位标签
     *
     * @param param search condition
     * @return list
     */
    @ApiOperation(value = "根据岗位标签编码和组织查询用户列表")
    @RequestMapping(value = "feignApi/userCenter/orgLabel/selectEmployeeByOrgLabel", method = RequestMethod.POST)
    PagerEntity<OrgLabelUserInfoResVO> selectEmployeeByOrgLabel(@RequestBody SelectEmployeeListQeqVO param);

    /**
     * 通过用户ID/账号/工号和岗位标签ID/编码获取用户所对应组织和指定岗位标签的人员清单
     *
     * @param param search condition
     * @return list
     */
    @ApiOperation(value = "通过用户ID/账号/工号和岗位标签ID/编码获取用户所对应组织和指定岗位标签的人员清单")
    @RequestMapping(value = "feignApi/userCenter/orgLabel/qryUserListByUserAndLabel", method = RequestMethod.POST)
    BaseResult<List<UserInfoResVO>> qryUserListByUserAndLabel(@RequestBody List<SelectUserLabelReqVO> param);
}
